The invention relates generally to addressing of memory locations, and specifically to a method for mapping an address for memory access in a memory system.
Memory systems have a growing impact on overall computer system performance and power efficiency. Maximizing the utilization of the available memory resources is therefore a key target of many research projects these days. One aspect that has been targeted already for a long time is to improve the memory system performance for workloads that involve access patterns based on power-of-2 strides in the used address sequences. These are, e.g., workloads that access a data structure that is mapped on the linear virtual (and also physical) address space, by addresses with an increment of 1 (e.g., 0, 1, 2, 3, etc.), 8 (e.g., 0, 8, 16, 24, etc.), or 256 (e.g., 256, 512, 768, 1024, etc.) and so on. Despite that this type of access has been investigated for a long time, the issue of inefficient access is still not solved. One problem is that this kind of power-of-2 stride access often results in degraded memory performance due to the organization and standard address mapping used in many memory systems, which are often organized using a power-of-2 number of memory banks. In special HPC (high performance computing) systems, sometimes fixed/hard-wire mappings are used that are based on performing a modulo operation against a prime number or similar approaches, which are difficult to program and still can result in worst-case/pathological cases. The latter mechanisms also add to the access latency. One example of a workload that involves many accesses to the same data structure using a wide variety of power-of-2 strides is the Fast Fourier Transform (FFT), which is considered one of the most important algorithms in signal processing and is also one of the most published algorithms in literature. It allows efficient conversions of a sampled function from the time domain to the frequency domain and vice versa, which are essential for a wide range of applications, including image processing (including recognition), and radio astronomy, and many more.